//package com.jsy.common.util.errorPage;
//
//import javax.servlet.*;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//
//public class ForceErrorPageFilter implements Filter {
//    @Override
//    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
//            throws IOException, ServletException {
//        HttpServletRequest request = (HttpServletRequest) req;
//        HttpServletResponse response = (HttpServletResponse) res;
//
//        // 包装响应，监听状态码
//        StatusExposingServletResponse wrappedResponse = new StatusExposingServletResponse(response);
//        chain.doFilter(request, wrappedResponse);
//
//        // 若状态码为400，强制跳转自定义页面
//        if (wrappedResponse.getStatus() == 400) {
//            request.getRequestDispatcher("/custom_400.html").forward(request, response);
//        }
//    }
//}
//
//// 辅助类：监听响应状态码
//class StatusExposingServletResponse extends HttpServletResponseWrapper {
//    private int status;
//
//    public StatusExposingServletResponse(HttpServletResponse response) {
//        super(response);
//    }
//
//    @Override
//    public void sendError(int sc) throws IOException {
//        this.status = sc;
//        super.sendError(sc);
//    }
//
//    @Override
//    public void sendError(int sc, String msg) throws IOException {
//        this.status = sc;
//        super.sendError(sc, msg);
//    }
//
//    @Override
//    public void setStatus(int sc) {
//        this.status = sc;
//        super.setStatus(sc);
//    }
//
//    public int getStatus() {
//        return status;
//    }
//}